package com.example.excel.demo;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * 读 Excel 表的数据
 */
public class ExcelReadDemo {

    // main() 方法
    public static void main(String[] args) {

        /////////////////// 读 Excel 表的数据 ///////////////////
        String filePathName = "D:\\所有员工工作簿-2021.xls";

        try {
            // IO，新建一个输入流对象，【以程序作为基点，读到磁盘文件到程序就使用输入流】
            FileInputStream file = new FileInputStream(filePathName);

            // 工作簿 -- HSSFWorkbook
            HSSFWorkbook workbook = new HSSFWorkbook(file);

            // 工作表 -- HSSFSheet
            HSSFSheet sheet = workbook.getSheetAt(0);  // 取工作簿的第一张工作表

            // 表中的行，有很多我们用循环遍历
            for (Row row : sheet) {
                if (row.getRowNum() > 1) {  // 判断从第几行开始，可以调试查看到该属性
                    // 表中的列
                    String id = row.getCell(0).getStringCellValue(); // 注意这里行单元格的值获取方法
                    String name = row.getCell(1).getStringCellValue();
                    String work = row.getCell(2).getStringCellValue();
                    String date = row.getCell(3).getStringCellValue();

                    System.out.println(id + " - " + name + " - " + work + " - " + date + " - ");
                }
            }

            // 关闭工作簿
            workbook.close();

        } catch (IOException e) {
            System.out.println("喔，读取失败了！！！");
        }
    }
}
